1. Field of the Invention
The present invention relates to information handling systems and, more particularly, to systems and methods for synchronizing processor clocks in a multiprocessor information handling system.
2. Prior Art
In multiprocessor information handling systems, there are many circumstances where processor clocks must be synchronized to perform certain system functions, such as sharing performance information among the multiple processors in the information handling system.
Typically, there is no means provided at the hardware level of an information handling system to provide for clock synchronization. Therefore, the operating system must provide for synchronization for its own processes, which may require the generation of a system clock signal.
Although a general system clock may be adequate for limited applications in the information handling system, it is not adequate for performance measurement purposes. For example, the system clock does not provide sufficient granularity for small (subcycle) variations between processors in the system. Further, the system clock requires a considerable amount of system resources which would adversely affect performance of a system if the system clock were continually referred to during performance measurement. This would further skew the performance results. Although there have been attempts to reduce the amount of system resources for clock generation on some recently developed processor integrated circuit chips, there is still no means provided at the hardware level to synchronize or calibrate the times of the various clock signals for the plural processors in the information handling system to a single value for the entire information handling system.
There are several prior art approaches to synchronization. However, most prior art approaches focus on synchronization of either data or software processes. For example, some prior art approaches provide methods for synchronizing data between external apparatus and processors. This type of data synchronization does not provide the granularity needed when measuring performance in a multiprocessor information handling system.
Other prior art approaches use interrupts to synchronize software processes executing on multiple processors within a system. For example, there may be many processes executing in the system, each process executing on a separate processor. It is even possible for each process to be executing in a separate processor in a separate system. As each process reaches a "synchronization point," the process stops, asserts an interrupt, and transmits a "synchronous-readiness" signal to all other processors. When all processors have generated a synchronous-readiness signal, all processors are then resumed. Although this prior art approach allows for synchronization across several software processes, it does not provide for synchronization of multiple clocks in a multiprocessor information handling system. Furthermore, this type of prior art approach would adversely impact any performance measurements, as the very act of interrupting the system would impact system performance.
Consequently, it would be desirable to have a system and method of accurately and efficiently synchronizing processor clocks in a multiprocessor information handling system. It would be desirable to have a system and method which provide sufficient granularity for subcycle variations between processors in the information handling system, while using a relatively small amount of system resources.